Making Software Refactorings Safer

نویسندگان

  • Anna Maria Eilertsen
  • Anya Helene Bagge
چکیده

Refactorings often require that non-trivial semantic correctness conditions are met. IDEs such as Eclipse’s Java Development Tools rely on simpler, static precondition checks for refactorings. This leads to the phenomenon that a seemingly innocuous refactoring can change the behavior of the program. In this thesis we demonstrate our technique of introducing runtime checks of two particular refactorings for the Java programming language: Extract And Move Method, and Extract Local Variable. These checks can, in combination with unit tests, detect changed behavior and identify the refactoring step that introduced it.

برای دانلود رایگان متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

Making Programmers Aware Of Refactorings

Modern integrated development environments, such as ECLIPSE, provide automated or semi-automated refactoring support. Despite this support, refactorings are often done manually — either because the developer is not aware of the tool support or because he is not aware that what he did was a refactoring. Moreover, as we found in [7] programmers tend to do a bad job in documenting the refactorings...

متن کامل

Refactoring Meets Spreadsheet Formulas

The number of end-users who write spreadsheet programs is at least an order of magnitude larger than the number of trained programmers who write professional software. We studied a corpus of 3691 spreadsheets and we found that their formulas are riddled with the same smells that plague professional software: hardcoded constants, duplicated expressions, unnecessary complexity, and unsanitized in...

متن کامل

Algebraic Laws for Feature Models

Software Product Lines (SPL) may be adopted by either bootstrapping existing software products into a SPL, or extending an existing SPL to encompass an additional software product. Program refactorings are usually applied for carrying out those tasks. The notion of SPL refactoring is an extension of the traditional definition of refactoring; it involves not only program refactorings, but also F...

متن کامل

A Framework for an Adaptive Refactoring Tool

Refactoring is the process of making changes to the internal structure of existing code without changing the external behavior of that code. The resulting code is more flexible, reusable, and maintainable. While refactoring is becoming more popular in the software development community, manual refactoring can be a long and tedious process. Tools that support refactoring are becoming available; ...

متن کامل

A Genetic Algorithm for Automated Refactoring of Component-Based Software

Nowadays a software undergoes modifications done by different people to quickly fulfill new requirements, but its underlying design is not adjusted properly after each update. This leads to the emergence of bad smells. Refactoring provides a de facto behavior-preserving means to eliminate these anomalies. However, manually determining and performing useful refactorings is known as an NP-Complet...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 2016